Distributed Continuous Quality Assurance Leveraging User Resources to Improve Software Quality Around-the-World, Around-the-Clock
نویسندگان
چکیده
Quality assurance (QA) tasks, such as testing, profiling, and performance evaluation, have historically been done in-house on developergenerated workloads and regression suites. Since this approach is inadequate for many systems, tools and processes are being developed to improve software quality by increasing user participation in the QA process. A limitation of these approaches is that they focus on isolated mechanisms, but not on the coordination and control policies and tools needed to make the global QA process efficient, effective, and scalable. To address these issues, we have initiated the Skoll project, which is developing and validating novel software QA processes and tools that leverage the extensive computing resources of worldwide user communities in a distributed, continuous manner to significantly and rapidly improve software quality. This paper provides three contributions to the study of distributed continuous QA. First, it illustrates the structure and functionality of a generic around-the-world, around-the-clock QA process and describes several sophisticated tools that support this process. Second, it describes several scenarios implemented using these tools and process. Finally, it presents the results of a feasibility study applying these scenarios on two widely-used, large-scale open-source middleware toolkits. The results of this study indicate that the Skoll process and its toolsuite can effectively manage and control distributed, continuous QA processes. In a matter of hours and days we identified problems that had taken the ACE and TAO developers substantially longer to find and several of which had previously not been found. Moreover, automatic analysis of QA task results often provided developers information that quickly led them to the root cause of the
منابع مشابه
Distributed Continuous Quality Assurance: The Skoll Project
Quality assurance (QA) tasks, such as testing, profiling, and performance evaluation, have historically been done in-house on developergenerated workloads and regression suites. Since this approach is inadequate for many systems, tools and processes are being developed to improve software quality by increasing user participation in the QA process. A limitation of these approaches is that they f...
متن کاملDistributed Continuous Quality Assurance Process for Evaluating QoS of Performance-Intensive Software
Performance-intensive software is increasingly being used on heterogeneous combinations of OS, compiler, and hardware platforms. Examples include reusable middleware that forms the basis for scientific computing grids and distributed real-time and embedded systems. Since this software has stringent quality of service (QoS) requirements, it often provides a multitude of configuration options tha...
متن کاملLeveraging Open-Source Communities To Improve the Quality & Performance of Open-Source Software
Open-source development processes have emerged as an effective approach to reduce cycle-time and decrease design, implementation, and quality assurance costs for certain types of software, particularly systems infrastructure software, such as operating systems, compilers and language processing tools, editors, and distribution middleware. This paper presents two contributions to the study of op...
متن کاملValidating Quality of Service for Reusable Software Via Model-Integrated Distributed Continuous Quality Assurance
Quality assurance (QA) tasks, such as testing, profiling, and performance evaluation, have historically been done in-house on developer-generated workloads and regression suites. Performance-intensive systems software, such as that found in the scientific computing grid and distributed real-time and embedded (DRE) domains, increasingly run on heterogeneous combinations of OS, compiler, and hard...
متن کاملA Model-based Distributed Continuous Quality Assurance Process to Enhance the Quality of Service of Evolving Performance-intensive Software Systems
Time and resource constraints often force developers of highly configurable systems, such as that found in performance-intensive software, to assess their system’s performance on very few configurations and to extrapolate from these to the entire configuration space, which allows many performance bottlenecks and sources of QoS degradation to escape detection until systems are fielded. To improv...
متن کامل